import { config, fun2 } from '../config.js'

const tips = {
  1: '未知的错误！',
  1001: '暂无数据',
  2001: '没有提供充足的信息'
}

class Http {

  request({url,data={},method='GET'}){
    return new Promise((resolve,reject)=>{
      this._request(url, resolve,reject,data,method)
    })
  }

  _request(url, resolve,reject,data={},method='GET') {
    wx.request({
      url: config.api_base_url + url,
      method: method,
      data: data,
      header: {
        'content-type': 'application/json',
        'appkey': config.appkey
      },
      success: (res) => {
        const code = res.statusCode.toString()
        if (code.startsWith('2')) {
          // 如果调用方使用了 success 回调函数则将异步请求的结果返回给它
          // 否则不返回
          resolve(res.data)
        } else {
          reject()
          const error_code = res.data.error_code
          this._show_error(error_code)
        }
      },
      fail: (err) => {
        reject()
        this._show_error(1)
      }
    })
  }

  _show_error(error_code) {
    if (!error_code) error_code = 1
    const tip = tips[error_code]
    wx.showToast({
      title: tip?tip:tips[1],
      icon: 'none',
      duration: 1500
    })
  }
}

export { Http }